package com.bicon.botu.mall.goods.service.impl;


import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.bicon.botu.mall.goods.entity.ClassAttribute;
import com.bicon.botu.mall.goods.entity.ClassAttributeItem;
import com.bicon.botu.mall.goods.mapper.ClassAttributeItemMapper;
import com.bicon.botu.mall.goods.mapper.ClassAttributeMapper;
import com.bicon.botu.mall.goods.service.IClassAttributeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 分类属性
 * @author songxu
 * @since 2017-07-19
 */
@Service
public class ClassAttributeServiceImpl extends ServiceImpl<ClassAttributeMapper, ClassAttribute> implements IClassAttributeService {

    @Autowired
    private ClassAttributeMapper classAttributeMapper;  //商品规格

    @Autowired
    private ClassAttributeItemMapper classAttributeItemMapper; //商品规格项

    /**
     * 删除商品规格及规格项
     * @param id
     * @return
     */
    @Override
    public boolean deleteClassAttributeAndItem(String id) {
        //删除商品规格项
        EntityWrapper<ClassAttributeItem> entityWrapper=new EntityWrapper<>();
        entityWrapper.eq("attribute_id",id);
        Integer delItemCount=classAttributeItemMapper.delete(entityWrapper);
        //删除商品规格
        Integer delClassAttributCount=classAttributeMapper.deleteById(id);
        if(delClassAttributCount!=null && delClassAttributCount>0){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 保存商品规格及商品规格项
     * @param classAttribute
     * @param classAttributeItem
     * @return
     */
    @Override
    public boolean saveClassAttributeAndItem(ClassAttribute classAttribute, List<ClassAttributeItem> classAttributeItem) {
        try {
            classAttributeMapper.insert(classAttribute);
            for(ClassAttributeItem  entity:classAttributeItem){
                classAttributeItemMapper.insert(entity);
            }
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
